<!DOCTYPE html PUBLIC "-//W3C//DTD HTML @VERSION@1 Transitional//EN">
<html>
  <head>
    <meta name="generator"
    content="HTML Tidy for Windows (vers 14 February 2006), see www.w3.org" />
    <meta content="text/html; charset=utf-8" http-equiv="content-type" />
    <title>@APPNAME@ User&#39;s Guide, version @VERSION@, 5. Templates for UML2 Diagrams</title>
    <meta name="keywords" content="" />
    <meta name="description" content="" />
    <link href="default.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
 div.c8 {font-size: 80%; text-align: right}
 div.c7 {text-align: center}
 div.c6 {margin-left: 20px;}
 table.c5 {text-align: left;}
 td.c4 {vertical-align: top;}
 td.c3 {vertical-align: top; text-align: center;}
 td.c5 {vertical-align: top; colspan : 3;}
 div.c2 {margin-left: 20px;}
 span.c1 {font-style: italic;}
</style>
  </head>
  <body>
    <table border="0" width="100%">
      <tr>
        <td align="left">@APPNAME@ User&#39;s Guide</td>
        <td align="right">
        <a href="#top">Top</a> | 
        <a href="Guide.html">Table of Contents</a> | 
        <a href="Guide4.html">Previous</a> | 
        <a href="AppendixA.html">Next</a> | 
        <a href="TopicIndex.html">Topic Index</a></td>
      </tr>
    </table>
    <hr />
    <a name="top" id="top"></a>
    <h2>
    <a name="sec-5" id="sec-5"></a>5. Templates for UML2 Diagrams</h2>
    <h3>
    <a name="sec-5.1" id="sec-5.1"></a>5.1 Nodes and Edges in UML Diagrams</h3>
    <div class="c2">
    <span class="c1">@APPNAME@</span> provides templates for the
    following UML2 diagrams:
    <ul>
      <li>
        <i>Class Diagram</i>
      </li>
      <li>
        <i>Package Diagram</i>
      </li>
      <li>
        <i>Use Case Diagram</i>
      </li>
      <li>
        <i>Sequence Diagram</i>
      </li>
      <li>
        <i>State Diagram</i>
      </li>
      <li>
        <i>Activity Diagram</i>
      </li>
    </ul>

    

    </div>

    <h4>
      <a name="sec-5.1.1" id="sec-5.1.1"></a>5.1.1 Inserting Nodes to UML Diagrams
    </h4>

    <div class="c2">
      There are two ways to insert nodes to a UML diagram. The first
      approach is to use the template shapes from the UML diagram
      templates, such as the template for UML Class Diagram [See section 4.1.2]. 
      The second approach is to use the
      hover popup menus of UML diagrams as show below.
      
      <table class="c11" cellpadding="2" cellspacing="2">
	<tbody>
          <tr>
            <td class="c12">
	      <img src="images/Common/uml-class-nodes.png" hspace="10" vspace="10" />
            </td>
	    <td>&nbsp;</td>
            <td class="c12">
	      <img src="images/Common/uml-class-nodes2.png" hspace="10" vspace="10" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) The template for nodes in<br/>
	      UML class diagrams</td>
	    <td>&nbsp;</td>
            <td class="c4">b) The hover popup menus for nodes in<br/>
	      UML class diagrams</td>
	  </tr>
	</tbody>
      </table>
      
      To use the hover popup to insert nodes to a UML diagram: 
      <ol>
	<li>Hover the mouse pointer in an open space of the diagram for
	  one second, a popup menu will fade in with node shapes allowed in the
	  current UML diagram.</li> 
	<li>Move mouse inside the popup and click the
	  left mouse button to select a node shape to be inserted.</li> 
	<li>Move the shape
	  to the desired location and click the left mouse button to complete
	  the insertion.</li>
      </ol>
      
      The popup will disappear if you move the mouse away from the
      popup. The popup will also fade out after a short period of time
      if no action is taken.
      After selecting the shape from the hover popup menu, 
      you may also click the right mouse button to cancel the 
      insertion operation.
    </div>

    <h4>
      <a name="sec-5.1.2" id="sec-5.1.2"></a>5.1.2 Inserting Edges to UML Diagrams
    </h4>
    <div class="c2">
      There are also two ways to insert edges to a UML diagram. The first
      approach is to use the template shapes from the UML diagram
      template, such as the template for UML Class Diagram [See section 4.1.2]. 
      The second approach is to use the
      hover popup menus of UML diagrams as show below.
      
      <table class="c11" cellpadding="2" cellspacing="2">
	<tbody>
          <tr>
            <td class="c12">
	      <img src="images/Common/uml-class-edges.png" hspace="10" vspace="10" />
            </td>
	    <td>&nbsp;</td>
            <td class="c12">
	      <img src="images/Common/uml-class-edges2.png" hspace="10" vspace="10" />
            </td>
	    <td>&nbsp;</td>
            <td class="c12">
	      <img src="images/Common/uml-class-edges3.png" hspace="10" vspace="10" />
            </td>
	    <td>&nbsp;</td>
            <td class="c12">
	      <img src="images/Common/uml-class-edges4.png" hspace="10" vspace="10" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) The template for edges in<br/>
	      UML class diagrams</td>
	    <td>&nbsp;</td>
            <td class="c4">b) The hover popup menus for edges<br/>
	      for a class node: side </td>
	    <td>&nbsp;</td>
            <td class="c4">c) The hover popup menus for edges<br/>
	      for a class node: top </td>
	    <td>&nbsp;</td>
            <td class="c4">d) The hover popup menus for edges<br/>
	      for a class node: bottom </td>
	  </tr>
	</tbody>
      </table>
      
      To use the hover popup to insert edges to a UML diagram: 
      <ol>
	<li>Hover the mouse pointer inside a node near its perimeter for
	  one second, a popup menu will fade in next to the node with the edge shapes allowed 
	  to be connected to the node in the
	  current UML diagram. Different popup menus may appear at different sides. 
	</li> 
	<li>Move mouse inside the popup and click the
	  left mouse button to select an edge shape to be inserted.</li> 
	<li>One end of the edge will be automatically connected to the node. 
	  Move the mouse to position the other end of the edge, 
	  and click the left mouse button to complete
	  the insertion.</li>
      </ol>

      The popup will disappear if you move the mouse away from the
      popup. The popup will also fade out after a short period of time
      if no action is taken.
      After selecting the shape from the hover popup menu, 
      you may also click the right mouse button to cancel the 
      insertion operation.
    </div>

    <h4>
      <a name="sec-5.1.3" id="sec-5.1.3"></a>5.1.3 Context-Sensitive Menus
    </h4>
    <div class="c2">

      When a node or an edge of a UML diagram is selected, you can
      click the right mouse to trigger the context-sensitive menus. 
      (For MacOS users with a single button mouse, Control-click the mouse.) 
      The
      context-sensitive menus for UML are specific to each type of
      nodes and edges. The context-sensitive menus for UML edges contain some common
      items. 
      A menu item will only appear if the corresponding action is 
      applicable to the selected edge. 

      <table class="c11" cellpadding="2" cellspacing="2">
	<tbody>
          <tr>
            <td>Change&nbsp;shape:</td>
	    <td>&nbsp;</td>
            <td>
	      Change the shape of the edge, e.g., changing a
	      line edge to a curve edge or orthogonal line edge.  The connection of
	      the edge and all visual and model attributes will be preserved.
	    </td>
          </tr>

          <tr>
            <td>Flip&nbsp;orientation:</td>
	    <td>&nbsp;</td>
            <td>
	      Flip the orientation of the edge. Only applicable to orthogonal lines and curves. 
	    </td>
          </tr>

          <tr>
            <td>Reverse&nbsp;direction:</td>
	    <td>&nbsp;</td>
            <td>
	      Reverse the direction of the edge, i.e., the
	      direction of the arrows will be flipped. The connection of the edge
	      and all visual and model attributes will be preserved.  
	    </td>
          </tr>

          <tr>
            <td>Align&nbsp;ends:</td>
	    <td>&nbsp;</td>
            <td>
	      If the edge is connected nodes at both ends, the two nodes connected to
	      the edge can be aligned vertically or horizontally.
	    </td>
          </tr>

	</tbody>
      </table>

      <table class="c11" cellpadding="2" cellspacing="2">
	<tbody>
          <tr>
            <td>
	      <img src="images/Windows/edge-menu1.png" hspace="10" vspace="10" />
            </td>
	    <td>&nbsp;</td>
            <td>
	      <img src="images/Windows/edge-menu2.png" hspace="10" vspace="10" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) The change shape menus for a transition edge<br/> 
	      in a state diagram.</td>
	    <td>&nbsp;</td>
            <td class="c4">b) The align ends menus for a transition edge in<br/>
	      a state diagram.</td>
	  </tr>

          <tr>
            <td colspan="3">
	      <img src="images/Windows/edge-menu3.png" hspace="10" vspace="10" />
            </td>
          </tr>
          <tr>
            <td class="c5">
	      c) The change shape menus for an association edge in a class diagram.
	    </td>
	  </tr>
	</tbody>
      </table>

    </div>



    <h3>
    <a name="sec-5.2" id="sec-5.2"></a>5.2 Editing Model Attributes</h3>
    <div class="c2">
      Most of the shapes in the UML2 templates have associated model
      elements. For each UML diagram, a UML model is constructed, which consists
      of the model elements of the shapes in the diagram. A UML diagram may
      contain any shapes. However, the model of the diagram includes only the
      model elements of the shapes selected from the matching template of the
      diagram. Shapes in a UML diagram that are not selected from the matching
      template are for documentation and decoration purposes only.
      The attributes of the model elements can be edited in the
      model tab of the attribute inspector panel.
    <br />
    </div>

    <h4>
    <a name="sec-5.2.1" id="sec-5.2.1"></a>5.2.1 Names and Labels</h4>

    <div class="c2">Many shapes (nodes and edges) in UML diagrams have names or
    labels. If a name is required for a shape, the name will automatically
    appear as a text prompt after the shape is inserted, as shown in
    illustration a) below. In this case you can simply select the point tool,
    click on the prompt and type in the name using the keyboard, as shown in
    illustration b) below. The name can also be edited from the corresponding
    field in the model attribute panel, as shown in illustration c) below. At
    any time, the name or label of a shape can be edited by either directly
    editing the text shape in the diagram or editing the corresponding field in
    the model attribute panel.

      <table border="0">
	<tr>
	  <td>
	    <table class="c5" cellpadding="2" cellspacing="2">
	      <tbody>
		<tr>
		  <td class="c3">
		    <img src="images/Common/class1.png" />
		  </td>
		</tr>
		<tr>
		  <td class="c4">a) the initial prompt of the
		    <br />&nbsp;required class name
		    <br />&nbsp;of a UML class node.</td>
		</tr>
		<tr>
		  <td class="c3">
		    <img src="images/Common/class2.png" />
		  </td>
		</tr>
		
		<tr><td></td></tr>

		<tr>
		  <td class="c4">b) the class name label
		    <br />&nbsp;after being edited.</td>
		</tr>
	      </tbody>
	    </table>
	  </td>
	  <td>&nbsp;</td>
	  <td>
	    <table class="c5" cellpadding="2" cellspacing="2">
	      <tbody>
		<tr>
		  <td class="c4">
		    <img src="images/Common/inspector-model-class.png" />
		  </td>
		</tr>
		<tr>
		  <td class="c4">c) the class name field in the
		    <br />&nbsp;model attribute panel.
		  </td>
		</tr>
	      </tbody>
	    </table>
	  </td>
	</tr>
      </table>

    If the name or label is optional for a shape, select the shape and
    the model attribute panel will display the attributes of the model of the
    selected shape. Each optional name or label will have a corresponding field
    in the model attribute panel. For example, when a new transition is added,
    it does not show any of the optional label, as shown in illustration a)
    below. The corresponding fields in the model attribute panel are empty
    initially, as shown in illustration b) below. To add one or more optional
    labels to the transition, you simply fill in the corresponding field in the
    model attribute panel, as shown in illustration c) below. The optional
    labels will appear in the diagram, as shown in illustration c) below. After
    the optional labels are added to the diagram, they can be edited by either
    directly editing the text shape in the diagram or editing the corresponding
    field in the model attribute panel. To remove an optional label, simply
    clear the text in the corresponding field in the model attribute panel.
    <br />
    <br />
    <table class="c5" cellpadding="2" cellspacing="2">
      <tbody>
        <tr>
          <td class="c3">
            <img src="images/Common/trans1.png" />
          </td>
          <td></td>
          <td class="c3">
            <img src="images/Common/trans1-model.png" />
          </td>
        </tr>
        <tr>
          <td class="c4">a) a transition without the optional labels.
          <br /></td>
          <td></td>
          <td class="c4">b) the fields corresponding to the optional labels
          <br />of the transition, whose values are empty.
          <br /></td>
        </tr>
        <tr>
          <td></td>
        </tr>
        <tr>
          <td class="c3">
            <img src="images/Common/trans2.png" />
          </td>
          <td></td>
          <td class="c3">
            <img src="images/Common/trans2-model.png" />
          </td>
        </tr>
        <tr>
          <td class="c4">c) a transition with its optional labels.
          <br /></td>
          <td></td>
          <td class="c4">b) the fields corresponding to the optional labels
          <br />of the transition, whose values are filled in.
          <br /></td>
        </tr>
      </tbody>
    </table>
    <br /></div>
    <h4>
    <a name="sec-5.2.2" id="sec-5.2.2"></a>5.2.2 Common Model Attributes</h4>
    <div class="c2">Stereotypes, tagged values, constraints, comments and links
    can be attached to any model element. Some stereotypes and tags are
    predefined. Custom stereotypes and tags can be introduced for any model
    element. Stereotypes, tagged values, constraints, comments and links can be
    added and edited from the model attribute panel.
    <br />
    <br />
    <img src="images/Common/common-model.png" />
    <h4>
    <a name="Editing_Stereotypes" id="Editing_Stereotypes"></a>Editing
    Stereotypes</h4>Stereotypes can be attached to any model elements. The
    process for editing stereotypes is as follows.
    <ol>
      <li>Select the shape and click the Stereotype Edit button in the model
      attribute panel. The Stereotype dialog will pop up, as shown below.
      <br />
      <img src="images/Common/stereotype-dialog.png" /></li>
      <li>The following actions are available. Repeat as necessary.
      <ul>
        <li>Select one or more items in the &quot;Available Stereotypes&quot;
        column (left) and click on the &quot;&gt;&quot; button to add the
        stereotypes to the &quot;Selected Stereotypes&quot; column (right).
        <table class="c5" cellpadding="2" cellspacing="2">
          <tbody>
            <tr align="center">
              <td class="c4">
                <img src="images/Common/stereotype-dialog1.png" />
              </td>
            </tr>
            <tr>
              <td class="c4">a) Select an available stereotype</td>
            </tr>
            <tr>
              <td></td>
            </tr>
            <tr>
              <td class="c4">
                <img src="images/Common/stereotype-dialog2.png" />
              </td>
            </tr>
            <tr>
              <td class="c4">b) Add the stereotype to the model</td>
            </tr>
          </tbody>
        </table></li>
        <li>Click on the &quot;&gt;&gt;&quot; button will add all the items in
        the &quot;Available Stereotypes&quot; column to the &quot;Selected
        Stereotypes&quot; column.</li>
        <li>Select one or more items in the &quot;Selected Stereotypes&quot;
        column (right) and click on the &quot;&lt;&quot; button to remove the
        stereotypes.</li>
        <li>Click on the &quot;&lt;&lt;&quot; button will remove all the items
        in the &quot;Selected Stereotypes.&quot;</li>
        <li>To add a new stereotype to the &quot;Available Stereotypes&quot;
        column, type the name of the new stereotype in the &quot;New
        stereotype&quot; text field. Click the &quot;Available&quot; button.
        The new stereotype will appear in the &quot;Available Stereotypes&quot;
        column.
        <table class="c5" cellpadding="2" cellspacing="2">
          <tbody>
            <tr align="center">
              <td class="c4">
                <img src="images/Common/stereotype-dialog3.png" />
              </td>
            </tr>
            <tr>
              <td class="c4">a) Adding a new stereotype</td>
            </tr>
            <tr>
              <td></td>
            </tr>
            <tr align="center">
              <td class="c4">
                <img src="images/Common/stereotype-dialog4.png" />
              </td>
            </tr>
            <tr>
              <td class="c4">b) The new stereotype added to the &quot;Available
              Stereotypes&quot; column</td>
            </tr>
          </tbody>
        </table></li>
        <li>To add a new stereotype directly to the &quot;Selected
        Stereotype&quot; column, type the name of the new stereotype in the
        &quot;New stereotype&quot; text field. Click the &quot;Selected&quot;
        button. The new stereotype will appear in the &quot;Selected
        Stereotypes&quot; column.
        <br />
        <img src="images/Common/stereotype-dialog5.png" /></li>
      </ul></li>
      <li>Click on the &quot;OK&quot; button to save the stereotypes and close
      the dialog.
      <br /></li>
    </ol>

    <h4>
    <a name="Editing_Tagged_Values" id="Editing_Tagged_Values"></a>Editing
    Tagged Values</h4>Tagged values are name-value pairs that can be attached
    to any model elements. The process for editing tagged values is as follows.
    <ol>
      <li>Select the shape and click the Tags Edit button in the model
      attribute panel. The Tags dialog will pop up, as shown below.
      <br />
      <img src="images/Common/tags-dialog1.png" /></li>
      <li>To add a new tagged value, click on the &quot;Add&quot; button, a
      blank line will appear at the bottom of the table. Fill in the name and
      value in their respective cells.
      <br />
      <img src="images/Common/tags-dialog2.png" /></li>
      <li>To remove a tagged value, check the &quot;Delete&quot; box of the
      tagged value to be removed and click on the &quot;Delete&quot; button.
      <br />
      <img src="images/Common/tags-dialog3.png" /></li>
      <li>Click on the &quot;Done&quot; button to save the tagged values and
      close the dialog.</li>
    </ol>

    <h4>
    <a name="Editing_Constraints" id="Editing_Constraints"></a>Editing Constraints</h4>

    Multiple pieces of constraints can be attached to each
    model element. Each constraint can be named, and can be written informally
    or formally in OCL. The process for editing constraints is as follows.
    <ol>
      <li>Select the shape and click the Constraints Edit button in the model
      attribute panel. The Constraints dialog will pop up, as shown below.
      <br />
      <img src="images/Common/constraints-dialog1.png" /></li>
      <li>Enter the name of constraint in the Name field, and select the
      language using the Language drop-down box. Enter the constraints in the
      text area.
      <br />
      <img src="images/Common/constraints-dialog2.png" /></li>
      <li>To enter another constraint, enter a different name in the Name field
      and repeat the step above.
      <br />
      <img src="images/Common/constraints-dialog3.png" /></li>
      <li>Use the Name field is also a drop-down box, which can be used to
      select the constraint to edit.
      <br />
      <img src="images/Common/constraints-dialog4.png" /></li>
      <li>Click on the &quot;OK&quot; button to save the constraints and close
      the dialog.</li>
    </ol>

    <h4>
    <a name="Editing_Comments" id="Editing_Comments"></a>Editing Comments</h4>

    Comments can be attached to any model elements. The comments
    can be in plain text or HTML. The process for editing comments is as
    follows.
    <ol>
      <li>Select the shape and click the Comment Edit button in the model
      attribute panel. The Comments dialog will pop up.
      <br />
      <img src="images/Common/comments-dialog1.png" /></li>
      <li>Use the content type drop-down box to select plain text or HTML.
      Enter the comments in the text area.
      <br />
      <img src="images/Common/comments-dialog2.png" /></li>
      <li>Click on the &quot;OK&quot; button to save the comments and close the
      dialog.</li>
    </ol>

    <h4>
    <a name="Editing_Links" id="Editing_Links"></a>Editing Links</h4>

    A link is
    a pair of name and reference. Links can be attached to any model elements.
    The process for editing links is as follows.
    <ol>
      <li>Select the shape and click the Links Edit button in the model
      attribute panel. The Links dialog will pop up, as shown below.
      <br />
      <img src="images/Common/links-dialog1.png" /></li>
      <li>To add a new link, click on the &quot;Add&quot; button, a blank line
      will appear at the bottom of the table. Fill in the name and reference in
      their respective cells.
      <br />
      <img src="images/Common/links-dialog2.png" /></li>
      <li>To remove a link, check the &quot;Delete&quot; box of the link to be
      removed and click on the &quot;Delete&quot; button.
      <br />
      <img src="images/Common/links-dialog3.png" /></li>
      <li>Click on the &quot;Done&quot; button to save the links and close the
      dialog.</li>
    </ol></div>
    <h4>
    <a name="sec-5.2.3" id="sec-5.2.3"></a>5.2.3 Editing Notes</h4>
    <div class="c2">A note can be attached to any shape in a UML diagram. You
    use the notes template to insert a node. Templates for notes are included
    in every template panel for UML diagrams. The following templates are
    provided.
    <div class="c2">
      <table border="0">
        <tbody>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-notes1.png" />
            </td>
            <td></td>
            <td class="c4">A note.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-notes2.png" />
            </td>
            <td></td>
            <td class="c4">A link to connect a note to a node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-notes3.png" />
            </td>
            <td></td>
            <td class="c4">A note with a link.</td>
          </tr>
        </tbody>
      </table>
    </div>Illustration a) below shows an empty note just after being inserted.
    To enter the text of note you may do one of the following:
    <br />
    <ul>
      <li>selecting the text prompt in the note shape and type using the
      keyboard, as shown in illustration b) below.</li>
      <li>selecting the note shape and filling in the text area in the model
      attribute panel, as shown in illustration c) below.</li>
    </ul>
    <br />
    <table class="c5" cellpadding="2" cellspacing="2">
      <tbody>
        <tr>
          <td class="c4">
            <img src="images/Common/notes1.png" />
          </td>
          <td class="c4">
            <img src="images/Common/notes2.png" />
          </td>
          <td class="c4">
            <img src="images/Common/notes3.png" />
          </td>
        </tr>
        <tr>
          <td class="c4">a) An empty note.
          <br /></td>
          <td class="c4">b) You may enter the text of a note by
          <br />selecting the text prompt and type.
          <br /></td>
          <td class="c4">c) You may also enter the text of a note
          <br />by using the model attribute panel.
          <br /></td>
        </tr>
      </tbody>
    </table>
    <br />
    <br />
    </div>

    <h3>
    <a name="sec-5.3" id="sec-5.3"></a>5.3 Class Diagrams</h3>
    <h4>
    <a name="sec-5.3.1" id="sec-5.3.1"></a>5.3.1 The Class Diagram
    Templates</h4>
    <div class="c2">The following templates for UML Class Diagrams are provided
    <div class="c2">
      <table border="0">
        <tbody>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-01.png" />
            </td>
            <td></td>
            <td class="c4">A class node with the attribute and operation
            compartments expanded. The attribute and operation compartments can
            be collapsed using the context menu by right clicking the
            mouse.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-02.png" />
            </td>
            <td></td>
            <td class="c4">A class node with the attribute and operation
            compartments collapsed. The attribute and operation compartments
            can be expanded using the context menu by right clicking the
            mouse.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-03.png" />
            </td>
            <td></td>
            <td class="c4">An active class node with the attribute and
            operation compartments expanded. The attribute and operation
            compartments can be collapsed using the context menu by right
            clicking the mouse.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-04.png" />
            </td>
            <td></td>
            <td class="c4">An active class node with the attribute and
            operation compartments collapsed. The attribute and operation
            compartments can be expanded using the context menu by right
            clicking the mouse.</td>
          </tr>

          <tr>
            <td class="c4" align="center">
              <img src="images/Windows/enum2.png" />
            </td>
            <td></td>
            <td class="c4">
	      An enumeration class with the compartment for
	      enumeration values expanded. The enumeration value
	      compartment can be collapsed using the context menu by
	      right clicking the mouse.
	    </td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Windows/enum1.png" />
            </td>
            <td></td>
            <td class="c4">
	      An enumeration class with the compartment for
	      enumeration values collapsed. The enumeration value
	      compartment can be expanded using the context menu by
	      right clicking the mouse.
	    </td>
          </tr>

          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-05.png" />
            </td>
            <td></td>
            <td class="c4">An extension, or generalization, relation between
            classes.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-06.png" />
            </td>
            <td></td>
            <td class="c4">A realization, or implementation, relation. between
            a class and an interface.</td>
          </tr>

          <tr>
            <td class="c4" align="center">
              <img src="images/Windows/mixin-edge.png" />
            </td>
            <td></td>
            <td class="c4">A mix-in relation between a class and a mix-in (class).
	    </td>
          </tr>


          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-09.png" />
            </td>
            <td></td>
            <td class="c4">An aggregation relation between two classes. The
            aggregation, navigability, and other properties of either end can
            be set or changed using the model attribute panel.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-10.png" />
            </td>
            <td></td>
            <td class="c4">A composition relation between two classes. The
            aggregation, navigability, and other properties of either end can
            be set or changed using the model attribute panel.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-11.png" />
            </td>
            <td></td>
            <td class="c4">An association relation between two classes. The
            aggregation, navigability, and other properties of either end can
            be set using the model attribute panel.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-12.png" />
            </td>
            <td></td>
            <td class="c4">A navigable association relation between two
            classes. The aggregation, navigability, and other properties of
            either end can be set using the model attribute panel.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-13.png" />
            </td>
            <td></td>
            <td class="c4">An association relation between two classes drawn as
            a poly-line. The aggregation, navigability, and other properties of
            either end can be set using the model attribute panel. Additional
            vertices of the poly-line can be added or removed [See 
            <a href="Guide4.html#sec-4.2.5">Poly-Shapes</a>].</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-14.png" />
            </td>
            <td></td>
            <td class="c4">A self association relation drawn as a corner loop
            [See 
            <a href="Guide4.html#sec-Add_Corner_Loop">Adding a Corner
            Loop</a>]. The aggregation, navigability, and other properties of
            either end can be set using the model attribute panel.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-15.png" />
            </td>
            <td></td>
            <td class="c4">A self association relation drawn as an edge loop
            [See 
            <a href="Guide4.html#sec-Add_Edge_Loop">Adding an Edge Loop</a>].
            The aggregation, navigability, and other properties of either end
            can be set using the model attribute panel.</td>
          </tr>

          <tr>
            <td class="c4" align="center">
              <img src="images/Windows/delegation-edge.png" />
            </td>
            <td></td>
            <td class="c4">A delegation relation between two classes.</td>
          </tr>

          <tr>
            <td class="c4" align="center">
              <img src="images/Windows/dependency-edge.png" />
            </td>
            <td></td>
            <td class="c4">A dependency relation between two classes.</td>
          </tr>

          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-07.png" />
            </td>
            <td></td>
            <td class="c4">An interface provided, or implemented, by a class.
            It can be connected to a class at one end and an interface required
            at the other end.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-class-08.png" />
            </td>
            <td></td>
            <td class="c4">An interface required by a class. It can be
            connected to a class at one end and an interface provided at the
            other end.</td>
          </tr>

        </tbody>
      </table>
    </div></div>
  
    <h4>
    <a name="sec-5.3.2" id="sec-5.3.2"></a>5.3.2 Editing Classes</h4>
    <div class="c2">
      
      Several additional varieties of class nodes can be created using
      the following checkboxes in the model attribute panel:
      <ul>
	<li>is interface</li> 
	<li>is abstract</li> 
	<li>is active</li> 
	<li>is mix-in</li> 
	<li>is exception</li> 
      </ul>
      
      <img src="images/Windows/interface-attr-pane.png" />

      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c3">
	      <img src="images/Windows/interface1.png" />
            </td>
            <td></td>
            <td class="c4">
	      <img src="images/Windows/abs-class1.png" />
            </td>
            <td></td>
            <td class="c4">
	      <img src="images/Windows/mixin1.png" />
            </td>
            <td></td>
            <td class="c4">
	      <img src="images/Windows/exception1.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) an interface</td>
            <td></td>
            <td class="c4">b) an abstract class</td>
            <td></td>
            <td class="c4">c) a min-in</td>
            <td></td>
            <td class="c4">d) an exception</td>
          </tr>
        </tbody>
      </table>

      The various properties of a class can be edited from the
      model attribute panel when the class node is selected.
    
    <div class="c2">
      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c3">
	      <img src="images/Common/class3.png" />
            </td>
            <td></td>
            <td class="c4">
	      <img src="images/Common/class-attr.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) a class node with attributes and
	      <br />operations</td>
            <td></td>
            <td class="c4">b) the model attribute panel for the selected
	      <br />class node.</td>
          </tr>
        </tbody>
      </table>
      
      The package name to which a class belongs can be set using the
      package name field in the model attribute panel
      
    <div class="c2">
      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c3">
	      <img src="images/Windows/class-pkg.png" />
            </td>
            <td></td>
            <td class="c4">
	      <img src="images/Windows/class-pkg-attr.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) a class with package<br/> name.</td>
            <td></td>
            <td class="c4">b) the Package name field in model<br/> attribute panel.</td>
          </tr>
        </tbody>
      </table>

    </div>


    <h4>
    <a name="Edit_Attributes" id="Edit_Attributes"></a>Editing Attributes of
    Classes</h4>

    To edit the attributes of a class, select the class node and
    click on the Attributes Edit button in the model attribute panel, the
    Attributes dialog will pop up, as shown below.
    <div class="c6">
      <img src="images/Common/class-attributes-dialog.png" />
    </div>
    The class attribute dialog consists of a top panel and a bottom
    panel. The top panel contains a list of the attributes of the class, and
    the bottom panel contains tabs for editing the constraints, comments,
    stereotypes, and the tagged values of the currently selected attribute in
    the top panel.
    <ol>
      <li>To add a new attribute, click on the &quot;Add Attribute&quot; button, a blank
      line will appear at the bottom of the list in the top panel.</li>
      <li>The cells in the top panel are editable and are used to edit the
      properties of the selected attribute
      <ul>
        <li>Fill in the name, type, and initial value of the attribute in their
        respective cells. Start editing by double clicking in the cell, and a
        text cursor should appear in the cell.</li>
        <li>Select the visibility, changeability, multiplicity, and collection
        kind of the attribute from the respective drop down menu.</li>
        <li>Check the Static box if the selected attribute is static.</li>
        <li>Use the tabs in the bottom panel to edit the constraints, comments,
        stereotypes, and tagged values of the currently selected attribute.
        These tabs are the same as the respective dialogs described in 
        <a href="5.2.2">5.2.2</a>.</li>
      </ul></li>
      <li>To remove an attribute, check the &quot;Delete&quot; box of the
      attribute to be removed and click on the &quot;Delete Attribute&quot; button.</li>
      <li>Click on the &quot;Done&quot; button to save the attributes and close
      the dialog.</li>
    </ol>
    <h4>
    <a name="Edit_Operations" id="Edit_Operations"></a>Editing Operations of
    Classes</h4>To edit the operations of a class, select the class node and
    click on the Operations Edit button in the model attribute panel, the
    Operations dialog will pop up, as shown in below.
    <div class="c2">
      <img src="images/Common/class-operations-dialog.png" />
    </div>The class operation dialog also consists of a top panel and a bottom
    panel. The top panel contains a list of the operations of the class, and
    the bottom panel contains tabs for editing the parameter, constraints,
    comments, stereotypes, and the tagged values of the currently selected
    operation in the top panel.
    <ol>
      <li>To add a new operation, click on the &quot;Add Operation&quot; button, a blank
      line will appear at the bottom of the list in the top panel.</li>
      <li>The cells in the top panel are editable and are used to edit the
      properties of the selected operation
      <ul>
        <li>Fill in the name and return type of the operation in their
        respective cells. Start editing by double clicking in the cell, and a
        text cursor should appear in the cell.</li>
        <li>The parameters of the selected operation can be entered either
        directly in the Parameters field in the top panel or using the
        Parameters tab in the button panel.</li>
        <li>Select the visibility and concurrency of the operation from the
        respective drop down menu.</li>
        <li>Check the Abstract box if the selected operation is abstract.</li>
        <li>Check the Query box if the selected operation is an query.</li>
        <li>Check the Static box if the selected operation is static.
        <br /></li>
        <li>Use the tabs in the bottom panel to edit the constraints, comments,
        stereotypes, and tagged values of the currently selected attribute.
        These tabs are the same as the respective dialogs described in 
        <a href="5.2.2">5.2.2</a>.</li>
      </ul></li>
      <li>To remove an operation, check the &quot;Delete&quot; box of the
      operation to be removed and click on the &quot;Delete Operation&quot; button.
      <br /></li>
      <li>Click on the &quot;Done&quot; button to save the operations and close
      the dialog.</li>
    </ol>
    <h4>
    <a name="Editing_Parameter" id="Editing_Parameter"></a>Editing Parameters
    of an Operation</h4>You may use the Parameters tab in the bottom panel of
    the class operation dialog to edit the parameters of the selected
    operation.
    <ol>
      <li>Select the operation to edit in the top panel of the operation
      dialog, then select the Parameters tab in the bottom panel. The parameter
      tab will display a list of the parameters of the selected operation.</li>
      <li>To add a new parameter, click on the &quot;Add Parameter&quot; button inside
      the Parameters tab, a blank line will appear at the bottom of the list of
      parameters in the Parameters tab.
      <ul>
        <li>Fill in the name, type, and default value of the parameter in their
        respective cells.</li>
        <li>Select the direction of the parameter from the drop down menu.</li>
      </ul></li>
      <li>To remove a parameter, check the &quot;Delete&quot; box of the
      parameter to be removed and click on the &quot;Delete Parameter&quot; button inside
      the Parameter tab.</li>
      <li>Click on the &quot;OK&quot; button inside the Parameters tab to save
      the properties of the parameters and update the operation table in the
      top panel.</li>
    </ol>
    <h4>
    <a name="Editing_Super_Classes" id="Editing_Super_Classes"></a>Editing
    Super Classes</h4>To edit the super-classes of a class, select the class
    node and click on the Super Classes Edit button in the model attribute
    panel, the Super Classes dialog will pop up, as shown below.
    <div class="c6">
      <img src="images/Common/superclass-dialog.png" />
    </div>A list of the super classes and interfaces of the selected class is
    displayed. The super classes and interfaces defined in the class diagram
    using the extension or realization relations will automatically appear in
    the list, and these are not editable from the the Super Classes dialog. The
    Super Classes dialog allow you to add additional super classes or
    interfaces that do not appear in the class diagram.
    <ol>
      <li>To add a new super class or interface, click on the &quot;Add&quot;
      button, a blank line will appear at the bottom of the table. Fill in the
      name in the Name cell.</li>
      <li>To remove a super class or interface, check the &quot;Delete&quot;
      box of the super class or interface to be removed and click on the
      &quot;Delete&quot; button.</li>
      <li>Click on the &quot;Done&quot; button to save the super classes or
      interfaces and close the dialog.</li>
    </ol>
    <h4>
    <a name="Expand_Collapse_Attribute_Operation_Compartments"
    id="Expand_Collapse_Attribute_Operation_Compartments"></a> Expand and
    Collapse Attribute and Operation Compartments</h4>

    The attribute and
    operation compartments of a class node can be expanded or collapsed using
    the context menu when the mouse is on top of the class node. Select the
    class node and right click the mouse. (For MacOS users with a single button
    mouse, Control-click the mouse.)
    <ul>
      <li>When the attribute and operation compartments are expanded, a menu to
      &quot;hide attributes and operations&quot; will pop up. Click on the menu
      to collapse the compartments.</li>
      <li>When the attribute and operation compartments are collapsed, a menu
      to &quot;show attributes and operations&quot; will pop up. Click on the
      menu to expand the compartments.</li>
    </ul>
    <div class="c2">
      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c4">
              <img src="images/Common/class-hide.png" />
            </td>
            <td></td>
            <td class="c4">
              <img src="images/Common/class-show.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) a class node with expanded attribute and
            <br />operation compartments</td>
            <td></td>
            <td class="c4">b) a class node with collapsed attribute and
            <br />operation compartments</td>
          </tr>
        </tbody>
      </table>
    </div>

    The attribute and operation compartments of a class node can also be 
    expanded or collapsed using the left most button in the 
    hover popup menu at the top side of a class node.

     <div class="c2">
      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c4">
              <img src="images/Common/uml-class-edges3.png" />
            </td>
            <td></td>
            <td class="c4">
              <img src="images/Common/uml-class-edges5.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) the hover popup menu of a class node with 
            <br />expanded attribute and operation compartments</td>
            <td></td>
            <td class="c4">b) the hover popup menu of a class node with 
            <br />collapsed attribute and operation compartments</td>
          </tr>
        </tbody>
      </table>
    </div>

    <h4>
    <a name="Edit_Templates" id="Edit_Templates"></a>Editing Template Classes
    (Generic Classes)</h4>To add template parameters of a template (generic)
    class, use the Template field to fill in the template parameters.
    <div class="c2">
      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c4">
              <img src="images/Common/class-template.png" />
            </td>
            <td></td>
            <td class="c4">
              <img src="images/Common/class-template-attr.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) a template class</td>
            <td></td>
            <td class="c4">b) the model attribute panel of the template
            class</td>
          </tr>
        </tbody>
      </table>
    </div></div>
    <h4>
    <a name="sec-5.3.3" id="sec-5.3.3"></a>5.3.3 Editing Associations</h4>
    <div class="c2">A UML association or composition may have as number of
      optional labels:
      <br />
      <ul>
	<li>the name of the association, which appears as the label of edge,
	  and</li>
	<li>the role name and multiplicity of each end, which appear as label
	  near the respective end.</li>
      </ul>When a new association or composition link is added, none of the
      optional labels is present. To add one or more of these optional labels,
      select the association and the model attribute panel of the association
      will be displayed. Fill in the corresponding fields in the model attribute
      panel to add the labels, as shown in the illustrations a) and b) below.
      <br />
      <br />
      <div class="c2">
	<table class="c5" cellpadding="2" cellspacing="2">
          <tbody>
            <tr>
              <td class="c4">
		<img src="images/Common/assoc.png" />
              </td>
            </tr>
            <tr>
              <td class="c4">a) an association (composition)</td>
            </tr>
            <tr>
              <td></td>
            </tr>
            <tr>
              <td class="c4">
		<img src="images/Common/assoc-attr.png" />
              </td>
            </tr>
            <tr>
              <td class="c4">b) the model attribute inspector panel of the selected
		association</td>
            </tr>
          </tbody>
	</table>
      </div>The End 1 in the model attribute panel of the association refers to
      the starting point of the association shape when it is inserted. Similarly,
      the End 2 in the model attribute panel of the association refers to the
      ending point of the association shape when it is inserted.
      <br />Furthermore, the following properties of each association end can be
      edited using the respective tab for the ends.
      <ul>
	<li>collection kind (if the multiplicity is greater than one)</li>
	<li>changeability</li>
	<li>aggregation, and</li>
	<li>navigability</li>
      </ul>
      The aggregation and navigability of an association end are shown as
      different types of arrows at that end.
      <div class="c2">
	<table border="0">
          <tbody>
            <tr>
              <td>Association End</td>
              <td>Aggregation</td>
              <td>Navigability</td>
            </tr>
            <tr>
              <td class="c4">
		<img src="images/Common/assoc-end-N-D.png" />
              </td>
              <td>none</td>
              <td>default</td>
            </tr>
            <tr>
              <td class="c4">
		<img src="images/Common/assoc-end-S-D.png" />
              </td>
              <td>shared</td>
              <td>default</td>
            </tr>
            <tr>
              <td class="c4">
		<img src="images/Common/assoc-end-C-D.png" />
              </td>
              <td>composite</td>
              <td>default</td>
            </tr>
            <tr>
              <td class="c4">
		<img src="images/Common/assoc-end-N-Y.png" />
              </td>
              <td>none</td>
              <td>navigable</td>
            </tr>
            <tr>
              <td class="c4">
		<img src="images/Common/assoc-end-S-Y.png" />
              </td>
              <td>shared</td>
              <td>navigable</td>
            </tr>
            <tr>
              <td class="c4">
		<img src="images/Common/assoc-end-C-Y.png" />
              </td>
              <td>composite</td>
              <td>navigable</td>
            </tr>
            <tr>
              <td class="c4">
		<img src="images/Common/assoc-end-N-N.png" />
              </td>
              <td>none</td>
              <td>non-navigable</td>
            </tr>
            <tr>
              <td class="c4">
		<img src="images/Common/assoc-end-S-N.png" />
              </td>
              <td>shared</td>
              <td>non-navigable</td>
            </tr>
            <tr>
              <td class="c4">
		<img src="images/Common/assoc-end-C-N.png" />
              </td>
              <td>composite</td>
              <td>non-navigable</td>
            </tr>
          </tbody>
	</table>
      </div>

      The model attributes of an association can also be edited using
      the hover popup editor of the association.
      <ol>
	<li>Hover the mouse pointer near either end of an association for
	  one second, a popup editor panel will fade in containing editable fields of 
	  the model attributes corresponding to the current end of the association.  
	</li> 
	<li>Move mouse inside the popup editor panel and start to edit.</li> 
	<li>Click the mouse outside the popup editor panel to conclude the editing session.
	  The popup editor panel will disappear. 
	</li>
      </ol>
      
      The popup editor panel will disappear if you move the mouse away from the
      popup. The popup will also fade out after a short period of time
      if no action is taken.

      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c4">
              <img src="images/Common/uml-assoc1.png" />
            </td>
	  </tr>
	  <tr>
            <td class="c4">
              <img src="images/Common/uml-assoc2.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">
	      The hover popup editor panels of an association.  
            </td>
	  </tr>
        </tbody>
      </table>
      
    </div>
    <h3>
    <a name="sec-5.4" id="sec-5.4"></a>5.4 Package Diagrams</h3>
    <h4>
    <a name="sec-5.4.1" id="sec-5.4.1"></a>5.4.1 The Package Diagram
    Templates</h4>
    <div class="c2">The following templates for UML Package Diagrams are
    provided.
    <div class="c2">
      <table border="0">
        <tbody>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-package-01.png" />
            </td>
            <td></td>
            <td class="c4">A leaf package node. It may not contain other
            package nodes.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-package-02.png" />
            </td>
            <td></td>
            <td class="c4">A container package node. It not contain other
            package nodes.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-package-03.png" />
            </td>
            <td></td>
            <td class="c4">A dependency relation between two packages.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-package-04.png" />
            </td>
            <td></td>
            <td class="c4">A dependency relation between two packages drawn as
            a poly-line. Additional vertices of the poly-line can be added or
            removed [See 
            <a href="Guide4.html#sec-4.2.5">Poly-Shapes</a>].</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-package-05.png" />
            </td>
            <td></td>
            <td class="c4">A dependency relation between two packages drawn as
            a poly-line. Additional vertices of the poly-line can be added or
            removed [See 
            <a href="Guide4.html#sec-4.2.5">Poly-Shapes</a>].</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-package-06.png" />
            </td>
            <td></td>
            <td class="c4">An extension relation between two packages.</td>
          </tr>
        </tbody>
      </table>
    </div></div>
    <h3>
    <a name="sec-5.5" id="sec-5.5"></a>5.5 Use Case Diagrams</h3>
    <h4>
    <a name="sec-5.5.1" id="sec-5.5.1"></a>5.5.1 The Use Case Diagram
    Templates</h4>
    <div class="c2">The following templates for UML Use Case Diagrams are
    provided.
    <div class="c2">
      <table border="0">
        <tbody>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-usecase-01.png" />
            </td>
            <td></td>
            <td class="c4">An actor node representing a human.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-usecase-02.png" />
            </td>
            <td></td>
            <td class="c4">An actor node representing a machine.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-usecase-03.png" />
            </td>
            <td></td>
            <td class="c4">A use case node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-usecase-04.png" />
            </td>
            <td></td>
            <td class="c4">A dependency relation between two use cases.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-usecase-05.png" />
            </td>
            <td></td>
            <td class="c4">An association relation between an actor and a use
            case or between two use cases.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-usecase-06.png" />
            </td>
            <td></td>
            <td class="c4">An extension relation between two use cases.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-usecase-07.png" />
            </td>
            <td></td>
            <td class="c4">A system boundary node that contains use cases.</td>
          </tr>
        </tbody>
      </table>
    </div></div>
    <h3>
    <a name="sec-5.6" id="sec-5.6"></a>5.6 State Diagrams</h3>
    <h4>
    <a name="sec-5.6.1" id="sec-5.6.1"></a>5.6.1 The State Diagram
    Templates</h4>
    <div class="c2">The following templates for UML State Diagrams are
    provided.
    <div class="c2">
      <table border="0">
        <tbody>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-01.png" />
            </td>
            <td></td>
            <td class="c4">A state machine node, which may contain states and
            transitions.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-02.png" />
            </td>
            <td></td>
            <td class="c4">A simple state node with the action compartment
            collapsed. The action compartment can be expanded using the context
            menu by right clicking the mouse. It may not contain
            sub-states.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-03.png" />
            </td>
            <td></td>
            <td class="c4">A simple state node with the action compartment
            expanded. The action compartment can be collapsed using the context
            menu by right clicking the mouse. It may not contain
            sub-states.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-04.png" />
            </td>
            <td></td>
            <td class="c4">A submachine state node. It represents an instance
            of a state machine. It may have entry and exit points but may not
            contain sub-states.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-05.png" />
            </td>
            <td></td>
            <td class="c4">A compound state node with the action compartment
            collapsed. The action compartment can be expanded using the context
            menu by right clicking the mouse. It may contain sub-states and
            transitions.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-06.png" />
            </td>
            <td></td>
            <td class="c4">A compound state node with the action compartment
            expanded. The action compartment can be collapsed using the context
            menu by right clicking the mouse. It may contain sub-states and
            transitions.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-07.png" />
            </td>
            <td></td>
            <td class="c4">An orthogonal state node with the action compartment
            collapsed. The action compartment can be expanded using the context
            menu by right clicking the mouse. Addition regions can be added or
            removed [See 
            <a href="Guide4.html#sec-4.3.5">Dealing with Compartments</a>].
            Each region may contain sub-states and transitions.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-08.png" />
            </td>
            <td></td>
            <td class="c4">An orthogonal state node with the action compartment
            expanded. The action compartment can be collapsed using the context
            menu by right clicking the mouse. Addition regions can be added or
            removed [See 
            <a href="Guide4.html#sec-4.3.5">Dealing with Compartments</a>].
            Each region may contain sub-states and transitions.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-09.png" />
            </td>
            <td></td>
            <td class="c4">An initial state node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-10.png" />
            </td>
            <td></td>
            <td class="c4">A final state node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-11.png" />
            </td>
            <td></td>
            <td class="c4">An entry point of a state machine.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-12.png" />
            </td>
            <td></td>
            <td class="c4">An exit point of a state machine.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-13.png" />
            </td>
            <td></td>
            <td class="c4">A deep history state node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-14.png" />
            </td>
            <td></td>
            <td class="c4">A shallow history state node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-15.png" />
            </td>
            <td></td>
            <td class="c4">A junction state node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-16.png" />
            </td>
            <td></td>
            <td class="c4">A decision state node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-17.png" />
            </td>
            <td></td>
            <td class="c4">A transition drawn as a straight line.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-18.png" />
            </td>
            <td></td>
            <td class="c4">A transition drawn as a quadratic curve.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-19.png" />
            </td>
            <td></td>
            <td class="c4">A transition drawn as a cubic curve.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-20.png" />
            </td>
            <td></td>
            <td class="c4">A transition drawn as a cubic curve.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-21.png" />
            </td>
            <td></td>
            <td class="c4">A self-transition drawn as a corner loop.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-22.png" />
            </td>
            <td></td>
            <td class="c4">A self-transition drawn as an edge loop.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-23.png" />
            </td>
            <td></td>
            <td class="c4">A transition drawn as a poly-line. Additional
            vertices of the poly-line can be added or removed [See 
            <a href="Guide4.html#sec-4.2.5">Poly-Shapes</a>].</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-24.png" />
            </td>
            <td></td>
            <td class="c4">A transition drawn as a poly-line. Additional
            vertices of the poly-line can be added or removed [See 
            <a href="Guide4.html#sec-4.2.5">Poly-Shapes</a>].</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-25.png" />
            </td>
            <td></td>
            <td class="c4">A transition drawn as a poly-line. Additional
            vertices of the poly-line can be added or removed [See 
            <a href="Guide4.html#sec-4.2.5">Poly-Shapes</a>].</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-state-26.png" />
            </td>
            <td></td>
            <td class="c4">A transition drawn as a poly-line. Additional
            vertices of the poly-line can be added or removed [See 
            <a href="Guide4.html#sec-4.2.5">Poly-Shapes</a>].</td>
          </tr>
        </tbody>
      </table>
    </div></div>

    <h4>
    <a name="sec-5.6.2" id="sec-5.6.2"></a>5.6.2 Editing States</h4>
    <div class="c2">The various properties of a state can be edited from the
    model attribute panel when the state node is selected.
    <div class="c2">
      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c3">
              <img src="images/Common/state.png" />
            </td>
            <td></td>
            <td class="c4">
              <img src="images/Common/state-model.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) a state node</td>
            <td></td>
            <td class="c4">b) the model attribute panel for the selected
            <br />state node.</td>
          </tr>
        </tbody>
      </table>
    </div>

    <h4>
    <a name="Expand_Collapse_Action_Compartment"
    id="Expand_Collapse_Action_Compartment"></a>
    Expanding and Collapsing the Action Compartment</h4>
    
    The action compartment of a state node can be expanded or
    collapsed using the context menu when the mouse is on top of the state
    node. Select the state node and right click the mouse. (For MacOS users
    with a single button mouse, Control-click the mouse.)
    <ul>
      <li>When the action compartment is expanded, a menu to &quot;hide
      actions&quot; will pop up. Click on the menu to collapse the action
      compartment.</li>
      <li>When the action compartment is collapsed, a menu to &quot;show
      actions&quot; will pop up. Click on the menu to expand the action
      compartment.</li>
    </ul>
    <div class="c2">
      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c4">
              <img src="images/Common/state-hide.png" />
            </td>
            <td></td>
            <td class="c4">
              <img src="images/Common/state-show.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) a state node with an expanded
            <br />action compartment</td>
            <td></td>
            <td class="c4">b) a state node with a collapsed
            <br />action compartment</td>
          </tr>
        </tbody>
      </table>
    </div>

    <h4>
    <a name="Add_Remove_Region" id="Add_Remove_Region"></a>
    Adding and Removing Regions of Orthogonal States</h4>

    You can add or remove regions of orthogonal states using the hover popup menus inside
    orthogonal states.
    <ol>
      <li>over the mouse inside an orthogonal state for one second. 
	If the mouse is 
	on a divider, a green button with a “+” sign and a red button with a “-” sign will appear.
	If the mouse is inside a region,
	a green button with a “+” sign will appear.	
      </li>
      <li>Either 
	<ol>
	  <li>Click on the green “+” button to add a region; or </li>
	  <li>Click on the red “-” button to remove a region; or </li>
	</ol>
      </li>
    </ol>

    <div class="c2">
      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c3">
              <img src="images/Common/uml-ortho-state1.png" />
            </td>
            <td></td>
            <td class="c4">
              <img src="images/Common/uml-ortho-state2.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) Hover popup for adding <br/> 
	      and removing a region</td>
            <td></td>
            <td class="c4">b) Hover popup for add a region</td>
          </tr>
        </tbody>
      </table>
    </div>
    </div>

    <h4>
    <a name="sec-5.6.3" id="sec-5.6.3"></a>5.6.3 Editing Transitions</h4>
    <div class="c2">The various properties of a transition can be edited from
    the model attribute panel when the transition is selected.
    <div class="c2">
      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c3">
              <img src="images/Common/trans3.png" />
            </td>
            <td></td>
            <td class="c4">
              <img src="images/Common/trans3-model.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) a transition</td>
            <td></td>
            <td class="c4">b) the model attribute panel for the selected
            <br />transition.</td>
          </tr>
        </tbody>
      </table>
    </div>
    
    When a transition label is selected, you can
    click the right mouse to trigger the context-sensitive menus for the label, which offer 
    various display options for the label, including splitting or merging the different parts of the 
    labels, i.e., the event, the guard, and the action. 
    
    <div class="c2">
      <table class="c5" cellpadding="2" cellspacing="2">
        <tbody>
          <tr>
            <td class="c3">
              <img src="images/Common/uml-trans1.png" />
            </td>
            <td></td>
            <td class="c4">
              <img src="images/Common/uml-trans2.png" />
            </td>
          </tr>
          <tr>
            <td class="c4">a) context-sensitive menu for <br/>
	    a transition label</td>
            <td></td>
            <td class="c4">b) context-sensitive menu for
              <br /> a split transition label.</td>
          </tr>
        </tbody>
      </table>
    </div>

    </div>
    <h3>
    <a name="sec-5.7" id="sec-5.7"></a>5.7 Activity Diagrams</h3>
    <h4>
    <a name="sec-5.7.1" id="sec-5.7.1"></a>5.7.1 The Activity Diagram
    Templates</h4>
    <div class="c2">The following templates for UML Activity Diagrams are
    provided.
    <div class="c2">
      <table border="0">
        <tbody>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-01.png" />
            </td>
            <td></td>
            <td class="c4">A receive event node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-02.png" />
            </td>
            <td></td>
            <td class="c4">A receive event node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-03.png" />
            </td>
            <td></td>
            <td class="c4">A send event node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-04.png" />
            </td>
            <td></td>
            <td class="c4">An action node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-05.png" />
            </td>
            <td></td>
            <td class="c4">A data node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-06.png" />
            </td>
            <td></td>
            <td class="c4">A final activity node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-07.png" />
            </td>
            <td></td>
            <td class="c4">A decision node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-08.png" />
            </td>
            <td></td>
            <td class="c4">A final flow node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-09.png" />
            </td>
            <td></td>
            <td class="c4">An initial activity node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-10.png" />
            </td>
            <td></td>
            <td class="c4">A fork node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-11.png" />
            </td>
            <td></td>
            <td class="c4">A fork node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-12.png" />
            </td>
            <td></td>
            <td class="c4">A join node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-13.png" />
            </td>
            <td></td>
            <td class="c4">A join node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-14.png" />
            </td>
            <td></td>
            <td class="c4">A merge node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-15.png" />
            </td>
            <td></td>
            <td class="c4">An object node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-16.png" />
            </td>
            <td></td>
            <td class="c4">An object node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-17.png" />
            </td>
            <td></td>
            <td class="c4">A region, which may contain activities and
            flows.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-18.png" />
            </td>
            <td></td>
            <td class="c4">A flow drawn as a straight line.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-19.png" />
            </td>
            <td></td>
            <td class="c4">A flow drawn as a quadratic curve.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-20.png" />
            </td>
            <td></td>
            <td class="c4">A flow drawn as a cubic curve.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-21.png" />
            </td>
            <td></td>
            <td class="c4">A flow drawn as a poly-line. Additional vertices of
            the poly-line can be added or removed [See 
            <a href="Guide4.html#sec-4.2.5">Poly-Shapes</a>].</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-22.png" />
            </td>
            <td></td>
            <td class="c4">A flow drawn as a poly-line. Additional vertices of
            the poly-line can be added or removed [See 
            <a href="Guide4.html#sec-4.2.5">Poly-Shapes</a>].</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-23.png" />
            </td>
            <td></td>
            <td class="c4">A flow drawn as a poly-line. Additional vertices of
            the poly-line can be added or removed [See 
            <a href="Guide4.html#sec-4.2.5">Poly-Shapes</a>].</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-activity-24.png" />
            </td>
            <td></td>
            <td class="c4">A flow drawn as a poly-line. Additional vertices of
            the poly-line can be added or removed [See 
            <a href="Guide4.html#sec-4.2.5">Poly-Shapes</a>].</td>
          </tr>
        </tbody>
      </table>
    </div></div>
    <h3>
    <a name="sec-5.8" id="sec-5.8"></a>5.8 Sequence Diagrams</h3>
    <h4>
    <a name="sec-5.8.1" id="sec-5.8.1"></a>5.8.1 The Sequence Diagram
    Templates</h4>
    <div class="c2">The following templates for UML Sequence Diagrams are
    provided.
    <div class="c2">
      <table border="0">
        <tbody>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-01.png" />
            </td>
            <td></td>
            <td class="c4">An object node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-02.png" />
            </td>
            <td></td>
            <td class="c4">A life line.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-03.png" />
            </td>
            <td></td>
            <td class="c4">An object node with an attached life line.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-04.png" />
            </td>
            <td></td>
            <td class="c4">An execution duration, which must be attached to a
            life line.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-05.png" />
            </td>
            <td></td>
            <td class="c4">A send (out-going) message node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-06.png" />
            </td>
            <td></td>
            <td class="c4">A stop node of a life line.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-07.png" />
            </td>
            <td></td>
            <td class="c4">A receive (in-coming) message node.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-08.png" />
            </td>
            <td></td>
            <td class="c4">An asynchronous call.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-09.png" />
            </td>
            <td></td>
            <td class="c4">A synchronous call.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-10.png" />
            </td>
            <td></td>
            <td class="c4">A (synchronous) self-call.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-11.png" />
            </td>
            <td></td>
            <td class="c4">A return message.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-12.png" />
            </td>
            <td></td>
            <td class="c4">An asynchronous call.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-13.png" />
            </td>
            <td></td>
            <td class="c4">A synchronous call.</td>
          </tr>
          <tr>
            <td class="c4" align="center">
              <img src="images/Common/template-uml-sequence-14.png" />
            </td>
            <td></td>
            <td class="c4">A return message.</td>
          </tr>
        </tbody>
      </table>
    </div></div>
    <hr />
    <div class="c7">
    <a href="#top">Top</a> | 
    <a href="Guide.html">Table of Contents</a> | 
    <a href="Guide4.html">Previous</a> | 
    <a href="AppendixA.html">Next</a> | 
    <a href="TopicIndex.html">Topic Index</a></div>
    <div class="c8">Copyright © @COPYYEAR@ @COPYRIGHT@</div>
    <br />
    <br />
  </body>
</html>
